package aceim.api.dataentity;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
/**
* Personal info entity
*/
public class PersonalInfo extends Entity implements Parcelable{
/**
* Info owner's protocol UID, either buddy or account
*/
private String protocolUid;
/**
* Does this info belong to Multi-User chat? (No by default)
*/
private boolean isMultichat = false;
/**
* Info bundle.
*/
private Bundle properties;
//A list of common info keys
public static final String INFO_CHAT_DESCRIPTION = "Description";
public static final String INFO_CHAT_OCCUPANTS = "Occupants";
public static final String INFO_CHAT_SUBJECT = "Subject";
public static final String INFO_NICK = "nick";
public static final String INFO_FIRST_NAME = "first-name";
public static final String INFO_LAST_NAME = "last-name";
public static final String INFO_EMAIL = "email";
public static final String INFO_ICON = "icon";
public static final String INFO_GENDER = "gender";
public static final String INFO_AGE = "age";
public static final String INFO_STATUS = "status";
public static final String INFO_REQUIRES_AUTH = "auth-required";
@Override
public void writeToParcel(Parcel dest, int flags) {
super.writeToParcel(dest, flags);
dest.writeString(protocolUid);
dest.writeBundle(properties);
dest.writeByte((byte) (isMultichat ? 1 : 0));
}
private PersonalInfo(Parcel in){
super(in);
readFromParcel(in);
}
public PersonalInfo(byte serviceId) {
super(serviceId);
properties = new Bundle();
}
private void readFromParcel(Parcel in) {
protocolUid = in.readString();
properties = in.readBundle();
isMultichat = in.readByte() > 0;
}
public static final Parcelable.Creator<PersonalInfo> CREATOR = new Parcelable.Creator<PersonalInfo>(){
@Override
public PersonalInfo createFromParcel(Parcel source) {
//Omitting classname variable used for class hierarchy parcelable support
source.readString();
return new PersonalInfo(source);
}
@Override
public PersonalInfo[] newArray(int size) {
return new PersonalInfo[size];
}
};
/**
* @return the protocolUid
*/
public String getProtocolUid() {
return protocolUid;
}
/**
* @param protocolUid the protocolUid to set
*/
public void setProtocolUid(String protocolUid) {
this.protocolUid = protocolUid;
}
/**
* @return the properties
*/
public Bundle getProperties() {
return properties;
}
/**
* @param properties the properties to set
*/
public void setProperties(Bundle properties) {
this.properties = properties;
}
/**
* @return the isMultichat
*/
public boolean isMultichat() {
return isMultichat;
}
/**
* @param isMultichat the isMultichat to set
*/
public void setMultichat(boolean isMultichat) {
this.isMultichat = isMultichat;
}
}